export interface Dependency {
  groupId: string
  artifactId: string
  version?: string
  relativePath?: string
  scope?: 'runtime' | 'test'
  optional?: boolean
}

export interface ConfigurableDependency extends Dependency {
  configuration?: {
    excludes: {
      exclude: Dependency
    }[]
  }
}

export interface PomOptions {
  modelVersion: string
  parent: Dependency
  groupId: string
  artifactId: string
  version: string
  name: string
  description: string
  dependencies: Array<{ dependency: Dependency }>
  build: {
    plugins: Array<{ plugin: ConfigurableDependency }>
  }
}
